//本文件填写Rogue-修炼选择事件执行周期内相关阶段函数
//【记得经常使用 Ctrl+S 保存修改，只有保存以后才能在编辑事件时生效】
//可引用变量 ArgBox - 该事件从上层事件继承的参数盒子

/// <summary>
/// 在此区域填写自定义的using指令
/// 注意：一般事件制作不需要填写; 在你明确知道每个using指令的意义和有明确使用需求的情况下再填写此指令集
/// </summary>
#region CustomUsings

#endregion

/// <summary>
/// 该事件监听的触发点被触发后，该接口检测事件是否满足执行条件，如果不满足则不执行该事件
/// </summary>
/// <returns>true - 可以执行 false - 忽略触发不执行</returns>
public override bool OnCheckEventCondition()
{
	//TODO
	return true;
}

/// <summary>
/// 该事件被触发且满足执行条件，事件显示前调用
/// 一般用于向参数盒子中准备事件链需要用到的参数
/// </summary>
public override void OnEventEnter()
{
	//TODO
	int combatResult = CombatResultType.PlayerWin;
	if(ArgBox.Get("CombatResult",ref combatResult))
	{
		
		if(combatResult == CombatResultType.EnemyDie)
		{
			//TODO 己方胜利处决，恶斗时无此结果
			// EventHelper.ToEvent("");//表示跳到空事件，即结束事件链，此处是因为无此结果，任意填写
		}	
		else if(combatResult == CombatResultType.PlayerWin)
		{
			//TODO 己方胜利未处决
			// EventHelper.ToEvent("f31ed53a-6529-4d25-a04c-95d9cc5f4b57");
		}
		else if(combatResult == CombatResultType.EnemyWin)
		{
			//TODO 敌方胜利未处决
			EventHelper.GameOver(); //ToEvent("a8100b0a-21fd-4591-b501-57bb7a685e57");
		}
		else if(combatResult == CombatResultType.PlayerDie)
		{
			//TODO 敌方胜利处决
			EventHelper.GameOver(); //EventHelper.ToEvent("");//表示跳到空事件，即结束事件链
		}
		else if(combatResult == CombatResultType.PlayerFlee)
		{
			//TODO 我方逃跑
			// EventHelper.ToEvent("0e52789b-6d86-4bfe-8fbb-a0259cf0b2dd");
			
		}
		else if(combatResult == CombatResultType.EnemyFlee)
		{
			//TODO 敌方逃跑
			// EventHelper.ToEvent("df7f69d1-c6e4-405c-9590-c3cbdc15273d");
			
		}
	}
	if (GameData.Domains.DomainManager.World.GetMainStoryLineProgress() >= 150)
	{
		EventHelper.ToEvent("62eb5eca-0179-4762-9789-cf9435b5a289");
	}
	var taiwu = ArgBox.GetCharacter("RoleTaiwu");
	var context = GameData.Domains.DomainManager.TaiwuEvent.MainThreadDataContext;
	var progress = GameData.Domains.DomainManager.World.GetMainStoryLineProgress();
	var targetLevel = (progress - 100) / 5 + 2;
	var consummateLevel = taiwu.GetConsummateLevel();
	if (consummateLevel < targetLevel) {
		// 精纯要跟上世界进度
		taiwu.SetConsummateLevel((sbyte)targetLevel, context);
	}
}

/// <summary>
/// 该事件执行完毕，即将退出该事件时调用
/// 一般用于从参数盒子中移除事件链中不需要用到的参数，或记录事件触发月份，确保后续触发几率计算
/// </summary>
public override void OnEventExit()
{
	//TODO
}

/// <summary>
/// 该事件即将显示前调用,获取被替换占位符后的事件显示内容
/// 如果事件文本预设满足系统默认的占位符替换方案，则可以不填写此接口
/// </summary>
public override string GetReplacedContentString()
{
	//TODO
	return string.Empty;
}

/// <summary>
/// 获取额外格式化使用的多语言字段
/// </summary>
/// <returns></returns>
public override List<string> GetExtraFormatLanguageKeys()
{
    return default;
}